//引入express
const { response, request } = require('express');
const express = require('express');

// 2.创建应用对象
const app = express();

// 3.创建路由规则
// request 是对请求报文的封装
// response 是对响应报文的封装
//  第二段内容的路径是/server 执行回调函数里面的代码，并且由response 做出响应
app.get('/server', (request, response) => {
    // 设置响应头  设置允许跨域
    response.setHeader('Access-Control-Allow-Origin', '*');


    // 设置响应体
    response.send('hello AJAX');
});

// 针对IE缓存
app.get('/ie', (request, response) => {
    // 设置响应头  设置允许跨域
    response.setHeader('Access-Control-Allow-Origin', '*');

    // 设置响应体
    response.send('hello IE');
});

// 延时响应
app.get('/delay', (request, response) => {
    // 设置响应头  设置允许跨域
    response.setHeader('Access-Control-Allow-Origin', '*');
    // 加一个定时器
    setTimeout(() => {
        response.send('hello IE');
    }, 3000

    )
    // 设置响应体
});

app.all('axios-server', (request, response) => {
    // 设置响应头  设置允许跨域
    response.setHeader('Access-Control-Allow-Origin', '*');
    response.setHeader('Access-Control-Allow-Headers', '*');
    const data = { name: 'sgf' };
    response.send('JSON.stringify(data)');

    // 设置响应体
});

app.all('/jsonp-server', (request, response))=> {
    const data = {
        name: '尚硅谷sdada'
    };
    // 将数据转化为字符串
    let str = JSON.stringify(data);
    // 返回结果
    response.end('handle(${str})');
}

app.all('/check-usename', (request, response))=> {
    const data = {
        exist: 1,
        msg: '用户名已经存在'
    };
    // 将数据转化为字符串
    let str = JSON.stringify(data);
    // 返回结果
    response.end('handle(${str})');
}

// app.post('/server', (request, response) => {
//     // 设置响应头  设置允许跨域
//     response.setHeader('Access-Control-Allow-Origin', '*');

//     // 响应头  *表示什么字符串都可以接受
//     response.setHeader('Access-Control-Allow-Headers', '*');
//     // 设置响应体
//     response.send('hello AJAX POST');
// });

// 可以接受任意类型的请求
app.all('/json-server', (request, response) => {
    // 设置响应头  设置允许跨域
    response.setHeader('Access-Control-Allow-Origin', '*');

    // 响应头  *表示什么字符串都可以接受
    response.setHeader('Access-Control-Allow-Headers', '*');
    // 设置响应体
    const data = {
        name: 'atguigu'
    };
    // 对对象进行字符串转换
    let str = JSON.stringify(data);
    response.send('hello AJAX POST-2');
});


//4.监听端口启动服务
app.listen(8000, () => {
    console.log('服务已经启动，8000端口监听中....');
})